import axios from "axios";
import router from '@/router';
import { message } from '@/utils/resetMessage';
import { baseURL } from '@/utils/base.js'

// 创建axios实例，配置默认接口地址（对应环境配置里）
const http = axios.create({
    // baseURL: "https://www.songshuxuesheng.com/gateway"
    // baseURL: "http://127.0.0.1:9900" 
    baseURL: baseURL
    // baseURL: "http://192.168.3.135:9900"
    // process.env.VUE_APP_URL
})
// const campusId =sessionStorage.getItem("ms_campusId")?sessionStorage.getItem("ms_campusId"):1
// axios.defaults.headers.common['x-campus-header'] = sessionStorage.getItem("ms_campusId") ? sessionStorage.getItem("ms_campusId") : 1;
// axios.defaults.headers.common['token'] = access_token && `Bearer ${access_token}`;
/* 请求拦截器 */
http.interceptors.request.use(config => {
    // 获取session里的token
    const access_token = sessionStorage.getItem('token') || ''

    // 需特殊处理的api
    // switch (config.url) {
    //     case "/api-uaa/oauth/token": {
    //         config.headers = {
    //             'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8",
    //             "token": "Basic " + window.btoa("webApp:webApp"),
    //             "x-campus-header": sessionStorage.getItem("ms_campusId") ? sessionStorage.getItem("ms_campusId") : 1
    //         }
    //         // config.headers.token = "Basic" + window.btoa("webApp:webApp")
    //         break;
    //     }
    //     default: {
    //         config.headers = {
    //             'Content-Type': "application/json",
    //             "token": access_token,
    //         }
    //         break;
    //     }
    // }

    config.headers = {
        'Content-Type': "application/json",
        "x-access-token": access_token,
    }
    // 打印传参
    if (config.method.toLocaleUpperCase() === "POST") {
        console.log(`${config.url} 的请求传参为`, config.data)
    } else {
        console.log(`${config.url} 的请求传参为`, config.params)
    }
    console.log(`${config.url} 的请求传参为`, config)
    return config
})

/* 响应拦截器 */
http.interceptors.response.use(response => {
    const {
        data
    } = response
    // 打印结果
    console.log(`${response.config.url} 的返回结果为：`, data)

    if (data.code != 0) {
        console.log('--------------------------', data)
        message.error(data.errMsg || '未知异常');
        if (data.code == 100002) {
            window.sessionStorage.clear();
            message.error(data.errMsg || '请重新登录！');
            router.replace("/login");
        }
    }
    return data
}, error => {
    console.log('><>>>>>>>>>>>>>>>>>>>>>>error', error)
    if (error.response.status === 401) {
        window.sessionStorage.clear();
        message.error('请重新登录');
        router.replace("/login");

    } else if (error.response.status === 504) {
        message.error('服务繁忙，请稍后再试');
    } else {
        message({
            showClose: true,
            type: 'error',
            message: '未知异常'
        })
    }

    return Promise.reject(error)
})

export default http
